const koa = require('koa');

const app = new koa()


// 如果没有next的话只 执行第一个中间件 然后就结束了

// 使用next next可能是一个异步的 我们要使用一个 asyun 和 await解决异步问题 
app.use( async (cxt,next)=>{
    console.log(1);
    cxt.body = '路由的使用'
    await next()
    console.log('1-1');
})

app.use( async (cxt,next)=>{
    console.log(2);
    await next()
    console.log('2-1');

})

app.use((cxt)=>{
    console.log(3);

})
// 执行原理
/* 
先执行 next上面的代码 先执行1 ，然后进到下一个中间件 打印了2，又执行了第三个中间件 打印了3 ,第二个中间件的next才执行完 接着执行 打印2-1的操作 第二个的next执行完之后 执行第一个中间件的next
*/

app.listen(3000,function(){
    console.log('服务启动成功');
})